package cn.cnf.service;


import cn.cnf.entity.Role;
import cn.cnf.entity.User;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 服务接口
 *
 * @author ZhuMeiYi
 * @description
 * @since 2020-12-03 12:47:52
 */
public interface UserService extends IService<User> {

    /**
     * 根据用户名获取用户
     *
     * @param username
     * @return
     */
    User findUserByUsername(String username);

    /**
     * 根据用户名获取角色
     *
     * @param username
     * @return
     */
    Role[] findRoleByUsername(String username);

    /**
     * 注册
     *
     * @param user
     * @return
     */
    String register(User user);

    /**
     * 用户名是否存在
     *
     * @param username
     * @return
     */
    boolean usernameExist(String username);

    /**
     * 根据用户名更新用户信息
     *
     * @param user
     * @return
     */
    String updateByUsername(User user);

    /**
     * 发送找回密码邮件
     * @param username
     * @return
     */
    void sendPasswordEmail(String username);


    String resetPasswordByToken(String token,String password);

    Object checkPwd(String pwd, String id);

    Object changePwd(User user);

    IPage getAllUser(String name, Integer current, Integer pageSize, Page<User> iPage);

}
